iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
1
Software Development

C++ 30天屠龍記系列 第 17

C++ 30天屠龍記(第17天): 一文學會C++ Cmake

  • 分享至 

  • xImage
  •  

Cmake

我們將會使用__Cmake__為我們之後使用的建構系統,因為這在C++當中最為流行。而且發展也最為快。先放圖吧。

cmake diagram

建構系統的用處

建構系統最大用處是將外部Library連結到你的專案裡。當然你可能會問,為什麼Python,rust,go等等都不需要?第一,因為C++是一個比較老的語言。第二,其實Cmake的兼容性在各大IDE和C++ libraries當中是最好的。另外,其實rustgo都有自己的build system,例如rusttoml寫的,gogo mods,dartyaml這樣,但是他們的自動生成能力比較準確。你在學完Cmake之後再看其他語言的Build system,你會發覺都差不多一樣。

安裝方法

你可以用以下這些辦法安裝

一個簡單的例子

  • 我假設大家都安裝了新的Cmake(3.15)
  • 你可以在你的專案目錄新建一個CmakeList.txt
# 這是使用的Cmake版本,這裡是3.1 - 3.15,可以支援>=11版本的C++
cmake_minimum_requied(VERSION 3.1...3.15)

# 你的專案名字 版本 編程語言(CXX是C++)
project(MyFirstCmake VERSION 1.0 CXX)

# 如果你在同一個目錄有其他的.hpp .cpp可以這樣加進去
# 庫名字 庫.cpp 庫.hpp
add_library(MyLib myLib.cpp myLib.hpp)

# 可執行檔名字 主檔名字
add_executable(MyExample simple_example.cpp)

# 可執行檔名字 私人 連結庫名字
target_link_libraries(MyExample PRIVATE MyLibExample)

# 我們用的C++是 17版本的
target_compile_features(myTarget PUBLIC cxx_std_17)
set_target_properties(myTarget PROPERTIES CXX_EXTENSIONS OFF)
  • 然後把上面的東西都複製進Cmakelist.txt
  • 這就是最簡單的Cmake檔了,很多時候專案簡單的話,就這樣複製上去然後小改一下就好

運行的方法

那好了,寫好了C++ 編譯文件,應該怎麼運行呢?

在你的專案目錄,就是你放C++文件的地方,打開terminal(在VScode/Sublimetext裡面打開會更容易)

cmake -S . -B build
cmake --build build
./build/main

然後你應該會看到

你好邦友
你好邦友,我是C++庫

這樣的結果。

然後呢,然後今天就完了....


上一篇
C++ 30天屠龍記(第16天): 小歇和後續規劃
下一篇
C++ 30天屠龍記(第18天): 學會vcpkg 套件管理器
系列文
C++ 30天屠龍記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言